//
//
//
//
//
// BaseQueueMsg.h
//

#ifndef _BASEQUEUE_MSG_H_
#define _BASEQUEUE_MSG_H_

#include "common.h"
#include "datatypes.h"

class BaseQueueMsg
{
	public:
		enum MSG_PRIORITY
		{
			PRIORITY_DEF = 0x00000000,
			PRIORITY_MED,
			PRIORITY_HIG,
			PRIORITY_URG,
		};
		BaseQueueMsg(U32 msgID, U32 msgPriority);
		virtual ~BaseQueueMsg();

		U32 Priority();
		U32 Priority(U32 newPri);
		
		U32 MsgID();
		U32 MsgID(U32 newID);

		virtual U32 MsgType() = 0;
		virtual U32 MsgType(U32 newType) = 0;
		virtual BaseQueueMsg* Clone(void) = 0;
		virtual bool Equal(BaseQueueMsg* compare) = 0;

	private:
		U32 _msgID;
		U32 _msgPriority;
};

#endif //_BASEQUEUE_MSG_H_
